package com.ktmall.mapper;

import com.ktmall.pojo.Order;
import com.ktmall.pojo.OrderDetail;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrderMapper {
    /**
     * 新增订单
     * @param order 订单实体
     * @return 返回新增成功后的主键值
     */
    public int saveOrder(Order order);

    /**
     * 新增订单详情
     */
    public int saveOrderDetail(OrderDetail detail);

    /**
     * 通过订单id查询详情
     * @param id 订单id
     * @return 返回订单详情信息
     */
    public Order findById(Integer id);

    /**
     * 通过订单id到t_order_detail表中查询此订单的详情信息
     * @param orderId
     * @return
     */
    public List<OrderDetail> findByOrderId(Integer orderId);

    /**
     * 根据订单状态查询订单总数
     * @param userId 当前微信用户id
     * @param orderState 订单状态
     */
    public int getCount(@Param("userId") Integer userId,@Param("orderState") Integer orderState);

    /**
     * 按订单状态分页查询订单列表数据
     * @param from 起始位置偏移量
     * @param pageSize 每页显示的行数
     * @param userId 当前微信用户id
     * @param orderState 订单状态
     * @return
     */
    public List<Order> getOrderListPage(@Param("pageNo") Integer from, @Param("pageSize") Integer pageSize,
                                        @Param("userId") Integer userId, @Param("orderState") Integer orderState);

    /**
     * 更新订单支付状态
     * @param orderInfo 订单实体
     */
    public int updatePayStatus(Order orderInfo);

    /**
     * 获取订单详细信息
     * @param orderId
     * @return
     */
    public List<OrderDetail> getOrderDetail(Integer orderId);

    /**
     * 收货
     * @param id
     * @return
     */
    public int takeGoods(Integer id);

    /**
     * 评价
     * @param id
     * @return
     */
    public int review(Integer id);

}
